// 转义HTML字符
function htmlEscape(htmlStr){
  /**
   * (1) 原来字符串的replace方法除了可以用第二个参数替换第一个参数
   *     还可以第一个参数为正则，第二个参数为匹配成功后的回调函数
   *     其实大体意思都是用右边替换左边，只是正则的 第一个参数要先匹配下
   *     第二个参数要在回调函数里面写
   * */ 
  return htmlStr.replace(/<|>|"|&/g,(match)=>{
       switch (match) {
         case '>':
           return '&gt;'
         case '<':
           return '&lt;'
         case '"':
           return '&quot;'
         case '&':
           return '&amp;' 
       }
  })
}

// 还原HTML字符
function htmlUnEscape(htmlStr){
 /**
  * (1) 原来字符串的replace方法除了可以用第二个参数替换第一个参数
  *     还可以第一个参数为正则，第二个参数为匹配成功后的回调函数
  *     其实大体意思都是用右边替换左边，只是正则的 第一个参数要先匹配下
  *     第二个参数要在回调函数里面写
  * */ 
 return htmlStr.replace(/&gt;|&lt;|&quot;|&amp;/g,(match)=>{
      switch (match) {
        case '&gt;':
          return '>'
        case '&lt;':
          return '<'
        case '&quot;':
          return '""'
        case '&amp;':
          return '&' 
      }
 })
}

module.exports = {
  htmlEscape,
  htmlUnEscape
}